package com.ztc.ZtcOrder.bean;

import com.aqgj.util.BaseEntity;
import com.ztc.ZtcClassesPrice.bean.ZtcClassesPrice;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

@Entity
@Table(name = "ztc_order")
public class ZtcOrder implements BaseEntity {

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String id;//ä¸»é”®

    private String orderNumber;//订单编号

    /**
     * 状态：-1.订单取消 0.已下单(待支付), 1.已付款(出票中), 2.订票成功(待出行), 3.订单完成(已出行), 4.退款中, 5.退款成功, 6.退款失败
     */
    private java.lang.Integer status;

    private String contactName;

    private String contactPhone;

    private String refundReason;

    private BigDecimal orderBalance;

    private BigDecimal payBalance;

    private BigDecimal refundBalance;

    private java.lang.Integer type;

    private java.lang.Integer refundStatus;

    private java.lang.Integer adultTicketNumber;//æˆ�äººç¥¨æ•°é‡�

    private java.lang.Integer childTicketNumber;//å„¿ç«¥ç¥¨æ•°é‡�

    private java.lang.Integer specialTicketNumber;

    private java.lang.Integer payType;//æ”¯ä»˜ç±»åž‹ï¼š1.ä½™é¢�2.æ”¯ä»˜å®�3.å¾®ä¿¡

    private java.util.Date orderTime;//ä¸‹å�•æ—¶é—´

    private java.util.Date payTime;//æ”¯ä»˜æ—¶é—´

    private java.util.Date finishTime;//å®Œæˆ�æ—¶é—´

    private java.util.Date refundTime;//é€€æ¬¾æ—¶é—´

    private String fkZtcWalletId;//æ‰€å±žé’±åŒ…id

    private String fkZtcClassesPriceForSaleId;//æ‰€å±žä»·æ ¼id

    private java.lang.Integer orderType;

    private String fkUserId;

    private String fkTransportId;

    private String aliPayParams;

    private ZtcClassesPrice ztcClassesPrice;

    private String fkStartClassesSiteForSaleId;

    private String fkEndClassesSiteForSaleId;

    private String fkClassesForSaleId;

    private java.lang.Integer isHandle;//订单是否处理(0-未处理 1-已处理)

    private java.util.Date handleTime;//处理时间（可提现金额）

    private String wxJsPayPrepayId; //微信公众号支付预支付标识

    private String wxAppPayPrepayId;// 微信App支付预支付标识

    private Integer payMode;// 支付方式：1:微信APP支付 2:微信公众号支付 3:微信H5支付 4:支付宝APP支付 5:支付宝H5支付


    public void setWxJsPayPrepayId(String wxJsPayPrepayId) {
        this.wxJsPayPrepayId = wxJsPayPrepayId;
    }

    public void setWxAppPayPrepayId(String wxAppPayPrepayId) {
        this.wxAppPayPrepayId = wxAppPayPrepayId;
    }

    public void setPayMode(Integer payMode) {
        this.payMode = payMode;
    }

    public void setOrderBalance(BigDecimal orderBalance) {
        this.orderBalance = orderBalance;
    }

    public void setPayBalance(BigDecimal payBalance) {
        this.payBalance = payBalance;
    }

    public void setRefundBalance(BigDecimal refundBalance) {
        this.refundBalance = refundBalance;
    }

    public void setType(java.lang.Integer type) {
        this.type = type;
    }

    public void setId(String value) {
        this.id = value;
    }

    public void setRefundReason(String refundReason) {
        this.refundReason = refundReason;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public void setStatus(java.lang.Integer value) {
        this.status = value;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public void setAdultTicketNumber(java.lang.Integer value) {
        this.adultTicketNumber = value;
    }

    public void setChildTicketNumber(java.lang.Integer value) {
        this.childTicketNumber = value;
    }

    public void setPayType(java.lang.Integer value) {
        this.payType = value;
    }

    public void setOrderTime(java.util.Date value) {
        this.orderTime = value;
    }

    public void setPayTime(java.util.Date value) {
        this.payTime = value;
    }

    public void setFinishTime(java.util.Date value) {
        this.finishTime = value;
    }

    public void setRefundTime(java.util.Date value) {
        this.refundTime = value;
    }

    public void setFkZtcWalletId(String value) {
        this.fkZtcWalletId = value;
    }

    public void setFkZtcClassesPriceForSaleId(String value) {
        this.fkZtcClassesPriceForSaleId = value;
    }

    public void setZtcClassesPrice(ZtcClassesPrice ztcClassesPrice) {
        this.ztcClassesPrice = ztcClassesPrice;
    }

    public void setSpecialTicketNumber(java.lang.Integer specialTicketNumber) {
        this.specialTicketNumber = specialTicketNumber;
    }

    public void setRefundStatus(Integer refundStatus) {
        this.refundStatus = refundStatus;
    }

    public void setFkUserId(String fkUserId) {
        this.fkUserId = fkUserId;
    }

    public void setFkTransportId(String fkTransportId) {
        this.fkTransportId = fkTransportId;
    }

    public void setAliPayParams(String aliPayParams) {
        this.aliPayParams = aliPayParams;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public void setFkStartClassesSiteForSaleId(String fkStartClassesSiteForSaleId) {
        this.fkStartClassesSiteForSaleId = fkStartClassesSiteForSaleId;
    }

    public void setFkEndClassesSiteForSaleId(String fkEndClassesSiteForSaleId) {
        this.fkEndClassesSiteForSaleId = fkEndClassesSiteForSaleId;
    }

    public void setFkClassesForSaleId(String fkClassesForSaleId) {
        this.fkClassesForSaleId = fkClassesForSaleId;
    }

    public void setIsHandle(Integer isHandle) {
        this.isHandle = isHandle;
    }

    public void setHandleTime(Date handleTime) {
        this.handleTime = handleTime;
    }

    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(name = "id", unique = true, nullable = false, insertable = true, updatable = true, length = 32)
    public String getId() {
        return this.id;
    }

    @Column(name = "order_number", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getOrderNumber() {
        return orderNumber;
    }

    @Column(name = "status", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public java.lang.Integer getStatus() {
        return this.status;
    }

    @Column(name = "contact_name", unique = false, nullable = true, insertable = true, updatable = true, length = 10)
    public String getContactName() {
        return contactName;
    }

    @Column(name = "contact_phone", unique = false, nullable = true, insertable = true, updatable = true, length = 18)
    public String getContactPhone() {
        return contactPhone;
    }

    @Column(name = "order_balance", unique = false, nullable = true, insertable = true, updatable = true, length = 10)
    public BigDecimal getOrderBalance() {
        return orderBalance;
    }

    @Column(name = "pay_balance", unique = false, nullable = true, insertable = true, updatable = true, length = 10)
    public BigDecimal getPayBalance() {
        return payBalance;
    }

    @Column(name = "refund_balance", unique = false, nullable = true, insertable = true, updatable = true, length = 10)
    public BigDecimal getRefundBalance() {
        return refundBalance;
    }

    @Column(name = "type", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public java.lang.Integer getType() {
        return type;
    }

    @Column(name = "pay_type", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public java.lang.Integer getPayType() {
        return this.payType;
    }

    @Column(name = "order_time", unique = false, nullable = true, insertable = true, updatable = true, length = 0)
    public java.util.Date getOrderTime() {
        return this.orderTime;
    }

    @Column(name = "pay_time", unique = false, nullable = true, insertable = true, updatable = true, length = 0)
    public java.util.Date getPayTime() {
        return this.payTime;
    }

    @Column(name = "finish_time", unique = false, nullable = true, insertable = true, updatable = true, length = 0)
    public java.util.Date getFinishTime() {
        return this.finishTime;
    }

    @Column(name = "refund_time", unique = false, nullable = true, insertable = true, updatable = true, length = 0)
    public java.util.Date getRefundTime() {
        return this.refundTime;
    }

    @Column(name = "refund_reason", unique = false, nullable = true, insertable = true, updatable = true, length = 15)
    public String getRefundReason() {
        return refundReason;
    }

    @Column(name = "fk_ztc_wallet_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkZtcWalletId() {
        return this.fkZtcWalletId;
    }

    @Column(name = "fk_ztc_classes_price_for_sale_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkZtcClassesPriceForSaleId() {
        return this.fkZtcClassesPriceForSaleId;
    }

    @Column(name = "refund_status", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public Integer getRefundStatus() {
        return refundStatus;
    }

    @Column(name = "fk_user_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkUserId() {
        return fkUserId;
    }

    @Column(name = "fk_transport_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkTransportId() {
        return fkTransportId;
    }

    @Column(name = "ali_pay_params", unique = false, nullable = true, insertable = true, updatable = true)
    public String getAliPayParams() {
        return aliPayParams;
    }
    @Column(name = "order_type", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public Integer getOrderType() {
        return orderType;
    }

    @Column(name = "fk_start_classes_site_for_sale_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkStartClassesSiteForSaleId() {
        return fkStartClassesSiteForSaleId;
    }

    @Column(name = "fk_end_classes_site_for_sale_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkEndClassesSiteForSaleId() {
        return fkEndClassesSiteForSaleId;
    }

    @Column(name = "fk_classes_for_sale_id", unique = false, nullable = true, insertable = true, updatable = true, length = 32)
    public String getFkClassesForSaleId() {
        return fkClassesForSaleId;
    }

    @Column(name = "is_handle", unique = false, nullable = true, insertable = true, updatable = true, length = 2)
    public Integer getIsHandle() {
        return isHandle;
    }
    @Column(name = "handle_time", unique = false, nullable = true, insertable = true, updatable = true, length = 0)
    public Date getHandleTime() {
        return handleTime;
    }

    @Column(name = "wx_js_pay_prepay_id", unique = false, nullable = true, insertable = true, updatable = true, length = 128)
    public String getWxJsPayPrepayId() {
        return wxJsPayPrepayId;
    }

    @Column(name = "wx_app_pay_prepay_id", unique = false, nullable = true, insertable = true, updatable = true, length = 128)
    public String getWxAppPayPrepayId() {
        return wxAppPayPrepayId;
    }

    @Column(name = "pay_mode", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public Integer getPayMode() {
        return payMode;
    }

    @Transient
    public ZtcClassesPrice getZtcClassesPrice() {
        return ztcClassesPrice;
    }

    @Transient
    public java.lang.Integer getAdultTicketNumber() {
        return adultTicketNumber;
    }

    @Transient
    public java.lang.Integer getChildTicketNumber() {
        return childTicketNumber;
    }

    @Transient
    public java.lang.Integer getSpecialTicketNumber() {
        return specialTicketNumber;
    }

}
